package com.cx.atguigu.controller;

import dev.langchain4j.data.message.UserMessage;
import dev.langchain4j.model.chat.ChatModel;
import dev.langchain4j.model.chat.response.ChatResponse;
import dev.langchain4j.model.output.TokenUsage;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * Description:
 *
 * @Author atguigu
 * @Create 2025/8/26 0:17
 * @Version 1.0
 */
@Slf4j
@RestController
public class LowApiController {
    @Resource(name = "qwen")
    private ChatModel chatModelQwen;
    @Resource(name = "deepseek")
    private ChatModel chatModelDeepSeek;

    @GetMapping(value = "/lowapi/api01")
    public String api01(@RequestParam(value = "prompt", defaultValue = "你好,你是谁") String prompt) {
        String result = chatModelQwen.chat( prompt);
        System.out.println("通过langchain4j调用千问plus大模型返回结果: " + result);
        return result;
    }

    @GetMapping(value = "/lowapi/api02")
    public String api02(@RequestParam(value = "prompt", defaultValue = "你好,你是谁") String prompt) {
        ChatResponse chatResponse = chatModelDeepSeek.chat(UserMessage.from(prompt));

        String result = chatModelDeepSeek.chat( prompt);
        System.out.println("通过langchain4j调用DeepSeek大模型返回结果: " + result);

        TokenUsage tokenUsage = chatResponse.tokenUsage();
        System.out.println("本次调用消耗token: "+tokenUsage);

        result = result+"\t\n"+ tokenUsage;
        return result;
    }

}
